#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
实现删除字符串中出现次数最少的字符，若多个字符出现次数一样，则都删除。
输出删除这些单词后的字符串，字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入，即多个字符串用回车隔开

输入描述:
字符串只包含小写英文字母, 不考虑非法输入，输入的字符串长度小于等于20个字节。

输出描述:
删除字符串中出现次数最少的字符后的字符串。

示例1
输入
  abcdd
输出
  dd
"""


def _extract(chars: str):
    counts = {str(_c): chars.count(str(_c)) for _c in chars}
    least_times = sorted(counts.values())[0]

    for char, times in counts.items():
        if times == least_times:
            chars = chars.replace(char, '')# 替换和移除差不多
        else:
            continue
    return chars


def main(strings='hello', filename=None):
    lst = []
    if filename:
        with open(filename, 'r') as f:
            for line in f:
                lst.append(_extract(line.strip('\n')))
        return lst
    else:
        if '\n' in strings:
            for s in strings.split('\n'):
                lst.append(_extract(s))
            return lst
        else:
            return _extract(strings)
